# Importer la fonction random #
from random import*



def menu(rejouer):
    fin=False
# Tant que ce n'est pas la fin du jeu, afficher le menu suivant :
    while fin==False:
             print("\n\n******** Menu ********")            #  \n = sauter une ligne
             print("Bienvenue dans le jeu des allumettes!")
             print("Le but du jeu est simple : Choisissez un nombre d'allumette puis decidez du nombre (entre 1 et 3) a enlever.\n A son tour, l'ordinateur en fera de meme et ainsi de suite jusqu'a ce qu'il n'y ait plus d'allumettes.\n Le perdant est celui qui retirera la derniere allumette.")
             print("(1) Jouer ")
             print("(2) Quitter le programme ")
# Choisir de rejouer ou non

# Si vous ne voulez plus jouer, entrer 2 et ce sera la fin du jeu
             if rejouer==2:
                fin=True
# Recuperer le resultat du choix de rejouer ou non
             return rejouer



# Tour du joueur #
def PartieJoueur(nbrAllumettes,nbrAlluAretirer,reponse):
# Afficher le nombre d'allumettes voulues



# Afficher en batons le nombre d'allumettes rentrees sur la meme ligne
    print("/"*nbrAllumettes,end='')
    print(" Vous jouez avec",alluaffiche,"allumettes")


# Creation d'une boucle demandant au joueur le nombre d'allumette qu'il veut oter#
    while 1:

# La reponse n'est pas accepter si le nombre est inferieur a 1 ou superieur a 3
        if (nbrAlluAretirer<1):
            print("Entrer un nombre SUPERIEUR ou egal a 1 ")
            reponse = False
        elif (nbrAlluAretirer>3):
            print("Entrer un nombre INFERIEUR ou egal 3")
            reponse = False
# Marquer une pause si le nombre entre est entre 1 et 3
        if reponse == True:
            break


# Soustraire le nombre d'allumette que le joueur veut enlever du nombre total d'allumettes affichees #

# Afficher le nombre d'allumette qu'il reste apres le tour du joueur
            print("/"*alluaffiche,end='')
            if(alluaffiche<=1):
                print(" Vous avez gagne :D")



# Tour de l'ordinateur #
# Serie de conditions ayant pour but que l'ordinateur ne joue pas que aleatoirement mais fasse en sorte de gagne quand il ne reste plus beaucoup d'allumettes #
def tourOrdi(nbrAlluAretirer,alluaffiche):
    if (nbrAlluAretirer > 8):
        print(" L'ordinateur a retirer",nbrAlluAretirer,"Allumettes")
    elif (nbrAlluAretirer == 8):
        nbrAlluAretirer = 3
    elif (nbrAlluAretirer == 7):
        nbrAlluAretirer = 2
    elif (nbrAlluAretirer == 6):
        nbrAlluAretirer = 1
    elif (nbrAlluAretirer == 5):
        nbrAlluAretirer = 1
    elif (nbrAlluAretirer == 4):
        nbrAlluAretirer = 3
    elif (nbrAlluAretirer == 3):
        nbrAlluAretirer = 2
    elif (nbrAlluAretirer == 2):
        nbrAlluAretirer = 1
        alluaffiche=alluaffiche-nbrAlluAretirer

# Afficher en baton le nombre d'allumette q'il reste apres le tour de l'ordinateur
        print("/"*alluaffiche,end='')
        print(" Il reste",alluaffiche,"allumettes")
        if(alluaffiche<=1):
             print(" Vous avez perdu :(")
    return alluaffiche



#Programme principal #
# Activer la fonction du menu, de la partie du joueur puis celle du tour de l'ordinateur
rejouer=1
menu(rejouer)
rejouer=input("Quel est votre choix? : ")

nbrAllumettes=int(input("Rentrer un nombre entier d'allumettes : "))
nbrAlluAretirer=int(input("Combien d'allumettes (entre 1 et 3) voulez-vous retirer? : "))
alluaffiche=nbrAllumettes
reponse = True

PartieJoueur(nbrAllumettes,nbrAlluAretirer,reponse)
nbrAlluAretirer = (int(random()*3+1))
alluaffiche=alluaffiche-nbrAlluAretirer

tourOrdi(nbrAlluAretirer,alluaffiche)
rejouer = True
while rejouer:
# Tant que le joueur veut rejouer, afficher le nombre d'allumettes voulues #
    nbrAllumettes=int(input("Rentrer un nombre entier d'allumettes : "))
    alluaffiche=nbrAllumettes
    while alluaffiche>1:
# Tant que le nombre d'allumette restant est superieur a 1, afficher en batons ce nombre d'allumette #
        print("/"*nbrAllumettes,end='')
        print(" Vous jouez avec",alluaffiche,"allumettes")
# Afficher a nouveau le menu lorsque le joueur veut rejouer
    rejouer = menu()

# Fin du programme #
print("*** Fin ***")
